home *** CD-ROM | disk | FTP | other *** search
/ Mac Easy 2010 May / Mac Life Ubuntu.iso / casper / filesystem.squashfs / usr / share / system-config-printer / probe_printer.pyc (.txt) < prev    next >
Encoding:
Python Compiled Bytecode  |  2009-10-12  |  3.3 KB  |  138 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyc (Python 2.6)
  3.  
  4. import socket
  5. import time
  6.  
  7. class LpdServer:
  8.     
  9.     def __init__(self, hostname):
  10.         self.hostname = hostname
  11.         self.max_lpt_com = 8
  12.  
  13.     
  14.     def _open_socket(self):
  15.         port = 515
  16.         
  17.         try:
  18.             (host, port) = self.hostname.split(':', 1)
  19.         except ValueError:
  20.             host = self.hostname
  21.  
  22.         s = None
  23.         
  24.         try:
  25.             ai = socket.getaddrinfo(host, port, socket.AF_UNSPEC, socket.SOCK_STREAM)
  26.         except socket.gaierror:
  27.             ai = []
  28.  
  29.         for res in ai:
  30.             (af, socktype, proto, canonname, sa) = res
  31.             
  32.             try:
  33.                 s = socket.socket(af, socktype, proto)
  34.             except socket.error:
  35.                 msg = None
  36.                 s = None
  37.                 continue
  38.  
  39.             
  40.             try:
  41.                 s.connect(sa)
  42.             except socket.error:
  43.                 msg = None
  44.                 s.close()
  45.                 s = None
  46.                 continue
  47.  
  48.         
  49.         return s
  50.  
  51.     
  52.     def _probe_queue(self, name, result):
  53.         s = self._open_socket()
  54.         if not s:
  55.             return False
  56.         print name
  57.         
  58.         try:
  59.             s.send('\x00x02%s\n' % name)
  60.             data = s.recv(1024)
  61.             print repr(data)
  62.         except socket.error:
  63.             msg = None
  64.             print msg
  65.             
  66.             try:
  67.                 s.close()
  68.             except:
  69.                 pass
  70.  
  71.             return False
  72.  
  73.         if len(data) > 0 and data[0] == 0:
  74.             
  75.             try:
  76.                 s.send('\x00x01\n')
  77.                 s.close()
  78.             except:
  79.                 pass
  80.  
  81.             result.append(name)
  82.             return True
  83.         
  84.         try:
  85.             s.close()
  86.         except:
  87.             data[0] == 0
  88.  
  89.         return False
  90.  
  91.     
  92.     def probe(self):
  93.         result = []
  94.         for name in [
  95.             'PASSTHRU',
  96.             'ps',
  97.             'lp',
  98.             'PORT1',
  99.             '']:
  100.             self._probe_queue(name, result)
  101.             time.sleep(0.1)
  102.         
  103.         for nr in range(self.max_lpt_com):
  104.             self._probe_queue('LPT%d' % nr, result)
  105.             time.sleep(0.1)
  106.             self._probe_queue('LPT%d_PASSTHRU' % nr, result)
  107.             time.sleep(0.1)
  108.             self._probe_queue('COM%d' % nr, result)
  109.             time.sleep(0.1)
  110.             self._probe_queue('COM%d_PASSTHRU' % nr, result)
  111.             time.sleep(0.1)
  112.         
  113.         nr = 1
  114.         while nr < 50:
  115.             found = self._probe_queue('pr%d' % nr, result)
  116.             time.sleep(0.1)
  117.             if not found:
  118.                 break
  119.             
  120.             nr += 1
  121.         return result
  122.  
  123.  
  124.  
  125. class SocketServer:
  126.     
  127.     def __init__(self, hostname):
  128.         self.hostname = hostname
  129.  
  130.  
  131.  
  132. class IppServer:
  133.     
  134.     def __init__(self, hostname):
  135.         self.hostname = hostname
  136.  
  137.  
  138.